package utilities;
/**********************************************
 * Cours :			LOG120
 * Session :		Automne 2011
 * Groupe : 		03
 * Projet : 		Lab 1
 * Étudiant(e)(s) : Garcia Carrasco, Maria
 * 					Bolduc, Andrew
 * Code(s) perm. :  GARM05559006
 * 					BOLA03098701
 * Professeur : 	Yannick Boucher
 * Chargé de labo:  Jonathan Simard
 * Nom du fichier : DecypherShape.java
 * Date crée :      2011-09-27
 **********************************************
 * Historique des modifications
 * Version finale 2011-10-03
 **********************************************
 * 2011-09-27		Version initiale
 **********************************************
 */

/**
 * Cette classe sert a décortiquer un String pour créé
 * les objets qui seront dessiner sur l'écran
 * @author Maria Garcia Carrasco et Andrew Bolduc
 */

import java.util.regex.Matcher;
import java.util.regex.Pattern;

public class DecypherShape {
	
	private int shapeID;
	private String shape;
	private String[] tempCoordinates = new String[4];
	private int[] coordinates = new int[4];

	/**
	 * @param newShape
	 */
	public void decypherShape(String newShape) {
	
		Pattern MY_PATTERN = Pattern.compile("^\\d{1,5}");
		Matcher matcher = MY_PATTERN.matcher(newShape);
		
		if(matcher.find()) {		
				shapeID = Integer.parseInt(matcher.group());		
		}
		
		MY_PATTERN = Pattern.compile("<(.*)>(.*)</\\1>");
		matcher = MY_PATTERN.matcher(newShape);
		
		if(matcher.find()) {				
			shape = matcher.group(1);
			tempCoordinates = matcher.group(2).trim().split("\\s");
			for(int i = 0; i < tempCoordinates.length; i++) {
				coordinates[i] = Integer.parseInt(tempCoordinates[i]);
			}
		}
	}
	
	/**
	 * @return
	 */
	public int getId() {
		return shapeID;
	}

	/**
	 * @return
	 */
	public String getShape() {
		return shape;
	}

	/**
	 * @return
	 */
	public int[] getCoordinates() {
		return coordinates;
	}
	
}